function [f, fderiv] = check_fct_smooth(u,tau,gamma)

n = size(u,1);

rho= (((tau-1)*u - 0.5*((tau-1)^2)*gamma) .* (u<= (tau-1)*gamma)) ...
    + (((0.5/gamma) * u.^2) .* ((tau-1)*gamma < u) .* (u < tau*gamma)) ...
    + ((tau*u - 0.5*(tau^2)*gamma) .* (u>=tau*gamma));

rho_deriv= (((tau-1)) .* (u<= (tau-1)*gamma)) ...
    + (((1/gamma) * u) .* ((tau-1)*gamma < u) .* (u < tau*gamma)) ...
    + ((tau) .* (u>=tau*gamma));

f=rho'*ones(n,1);   
fderiv = rho_deriv';

    %




